/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ssga.views;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import ssga.utils.DataCache;

/**
 *
 * @author David
 */
public final class ViewPlane implements EntidadView{

    private int codigo;
    private String descr;
    
   /**
     * Constructor nulo para objetos de tipo View
     */
    public ViewPlane() {
        this(99);
    }
    /**
     * Constructor para objetos de tipo View
     * @param i Id
     */
    public ViewPlane(int i) {
        this(i,"<nuevo>");
    }

    /**
     * Constructor para objetos de tipo View
     * a partir de un ResultSet
     * @param rs ResultSet proveniente de un query
     * @throws java.sql.SQLException
     */
    public ViewPlane(ResultSet rs) throws SQLException {
        // valores para un nuevo objeto Test
        setCodigo(rs.getInt("codigo"));
        setDescr(rs.getString("descr"));
    }

    /**
     * Constructor para objetos
     * @param i Id
     * @param d Descripcion
     */
    public ViewPlane(int i, String d) {
        // valores para un nuevo objeto Test
        List<EntidadView> le = DataCache.getEntidades("spCarrera");
        if (le != null) {
            for (EntidadView clone : le) {
                if (((ViewPlane) clone).getCodigo() == i) {
                    d = ((ViewPlane) clone).getDescr();
                    break;
                }
            }
        }
        setCodigo(i);
        setDescr(d);
    }

    /**
     * Metodo de Interfase Entidad, ver Entidad para mas info
     */
    @Override
    public void onLoad(List<EntidadView> e, ResultSet rs) throws SQLException {
        e.add(new ViewPlane(rs));
    }

    /**
     * Metodo de Interfase Entidad, ver Entidad para mas info
     */
    public String getQuerySql() {
        return "select codigo,descr from SP_TBL_PLANE order by descr asc";
    }

    /**
     * Metodo de Interfase Entidad, sobre-escribe metodo de la clase Object
     * para facilitar la visualizacion de este objeto al usuario
     */
    @Override
    public String toString() {
        return getDescr();
    }

    @Override
    public int hashCode() {
        return getCodigo();
    }

    @Override
    public boolean equals(Object anObject) {
        if (anObject != null) {
            if (((ViewPlane) anObject).getCodigo() == getCodigo()) {
                return true;
            }
        }
        return false;
    }

    /**
     * @return the codigo
     */
    public int getCodigo() {
        return this.codigo;
    }

    /**
     * @param codigo the codigo to set
     */
    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    /**
     * @return the descr
     */
    public String getDescr() {
        return descr;
    }

    /**
     * @param descr the descr to set
     */
    public void setDescr(String descr) {
        this.descr = descr;
    }
}
